# Definition for a binary tree node.
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        # 递归计算左右子树的最大深度
        left_depth = self.maxDepth(root.left)
        right_depth = self.maxDepth(root.right)
        # 返回较大的那个 + 1（当前节点）
        return max(left_depth, right_depth) + 1

# 思路：
# 如果当前节点为空，返回 0。
# 否则，递归计算左右子树的最大深度，取较大值并加 1（当前节点）。